﻿/************************************************************************

   Extended Silverlight Toolkit

   Copyright (C) 2010-2012 Xceed Software Inc.

   This program is provided to you under the terms of the Microsoft Public
   License (Ms-PL) as published at http://extendedsilverlight.codeplex.com/license

   Please purchase a commercial version of this toolkit if you are using
   it in a commercial product. The commercial versions support the project,
   and also include more features for each control, priority support,
   source code, updates, removed watermark, and a proprietary license.

   Visit http://xceed.com and follow @datagrid on Twitter.

  **********************************************************************/

using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;

namespace Xceed.Silverlight.DataGrid.Converters
{
  public class HorizontalAlignmentToTextAlignmentConverter : IValueConverter
  {
    #region IValueConverter Members

    public object Convert( object value, Type targetType, object parameter, CultureInfo culture )
    {
      if( !( value is HorizontalAlignment ) || ( typeof( TextAlignment ) != targetType ) )
        return DependencyProperty.UnsetValue;

      TextAlignment alignment;
      switch( ( HorizontalAlignment )value )
      {
        case HorizontalAlignment.Left:
          alignment = TextAlignment.Left;
          break;

        case HorizontalAlignment.Right:
          alignment = TextAlignment.Right;
          break;

        case HorizontalAlignment.Center:
          alignment = TextAlignment.Center;
          break;

        default:
          alignment = TextAlignment.Left;
          break;
      }

      return alignment;
    }

    public object ConvertBack( object value, Type targetType, object parameter, CultureInfo culture )
    {
      if( !( value is TextAlignment ) || ( typeof( HorizontalAlignment ) != targetType ) )
        return DependencyProperty.UnsetValue;

      HorizontalAlignment alignment;
      switch( ( TextAlignment )value )
      {
        case TextAlignment.Left:
          alignment = HorizontalAlignment.Left;
          break;

        case TextAlignment.Right:
          alignment = HorizontalAlignment.Right;
          break;

        case TextAlignment.Center:
          alignment = HorizontalAlignment.Center;
          break;

        default:
          alignment = HorizontalAlignment.Left;
          break;
      }

      return alignment;
    }

    #endregion
  }
}
